#include "common.h"

void power_init()
{
    static uint32_t flag = 0;
    //printf("power dect\r\n");
    GPIO_Init(GPIOD, GPIO_Pin_2, GPIO_Mode_Out_PP_Low_Fast);
    GPIO_Init(GPIOA, GPIO_Pin_5, GPIO_Mode_Out_PP_Low_Fast);
    GPIO_ResetBits(GPIOA, GPIO_Pin_5);
    GPIO_SetBits(GPIOD, GPIO_Pin_2);
    
    while (0)
    {
        if (read_key() != 0)
        {
            flag ++; 
        }
        
        if (flag > 1000)
        {
            printf("start ing %d\r\n", flag);
            break;
        }
    }

    flag = 0;
}

void power_off()
{
  
}

void power_on()
{
  
}

void sleep()
{
    halt();
}

static unsigned int power_mode_cnt = 0;
void low_mode()
{
    power_mode_cnt ++;
}

void high_mode()
{
    if (power_mode_cnt != 0)
    power_mode_cnt --;
}

int power_callback(int value)
{
    if (value & EVENT_POW_START)
    {
        set_timer_event(POWER_TASK, EVENT_RTC_TIMER, 100);
        value &= ~(EVENT_POW_START);
    }
    
    if (value & EVENT_POW_TIMER)
    {
        printf("power mode cnt =%d\r\n", power_mode_cnt);
        set_timer_event(POWER_TASK, EVENT_RTC_TIMER, 1000);
    }
}
